MessageSource 사용 예 :: 스프링(spring)/아이바티스(IBatis)/하이버네이트(Hibernate)[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

스프링(spring)/아이바티스(IBatis)/하이버네이트(Hibernate)
[1]
등록일:2008-06-11 16:42:02 (0%)
작성자:
제목:MessageSource 사용 예
ApplicationContext가 MessageSource 인터페이스를 구현했기 때문에 ApplicationContext를 MessageSource 처럼 사용할 수 있습니다.

greeting에 관한 메시지를 받아 오는 예제를 작성해 보겠습니다.

    @Test public void messageSource(){
        MessageSource messageSouce = bf;
        assertTrue(messageSouce.getMessage("greeting", null, "Default", null).
                equals("It's good to see you"));
    }

테스트는 실패 합니다. 이 테스트를 통과 시키기 위해서는 properties 파일1 과 간단한 xml 설정이 필요합니다.

먼저 format.properties 파일을 만듭니다.
greeting=It's good to see you

xml에는 다음 과 같이 format.properties 파일을 읽을 수 있도록 설정합니다.
    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basenames">
              <list>
                <value>format</value>
              </list>
        </property>
      </bean>

그럼 이제 테스트가 통과 하는 걸 확인 할 수 있습니다. bean의 이름은 항상 messageSource여야 합니다.

이번에는 똑같이 greeting에 관한 메시지를 받아 오지만 Locale을 이용해서 Locale.KOREA와 Locale.ENGLISH를 사용하여 i18n을 해봅니다.

테스트 코드를 다음과 같이 수정합니다.
    @Test public void messageSource(){
        MessageSource messageSouce = bf;
        assertEquals(messageSouce.getMessage("greeting", null, "Default", Locale.ENGLISH)
                ,"It's good to see you");
        assertEquals(messageSouce.getMessage("greeting", null, "Default", Locale.KOREA)
                ,"hi");
    }

properties 파일 이름을 변경하고 하나를 추가합니다.
#format_en.properties
greeting=It's good to see you
#format_ko_KR.properties
greeting=hi


xml 파일은 그대로 두고 테스트를 실행합니다. 테스트는 녹색불이 켜집니다.

format 뒤에 접미어는 Locale 클래스의 상수를 보고 거기에 따라 붙여 줘야 합니다. 그래야 ResouceBundle이 Locale에 따라 적당한 properties파일로 부터 message를 읽어옵니다.

Properties 참조 : http://blog.naver.com/swucs?Redirect=Log&logNo=40007033984

출처 : http://whiteship.tistory.com/570

[본문링크] MessageSource 사용 예
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=30338
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.